package com.example.android_day01.Dome

// 泛型
// 通用Box类 - T可以是任意类型
class Box<T>(private val item: T) {
    fun getItem(): T = item
}

fun main() {
    // 1. 传字符串
    val stringBox = Box("Hello")
    println(stringBox.getItem().uppercase()) // 自动识别为String类型

    // 2. 传整数
    val intBox = Box(42)
    println(intBox.getItem() + 10) // 自动识别为Int类型
}

//集合类
fun mains() {
    collection()
}

// 1. 集合类
fun collection() {
    // 类型安全的集合
    val names: List<String> = listOf("Alice", "Bob")
    val ages: List<Int> = listOf(25, 30)

    // 编译时类型检查（安全！）
    val firstChar = names[0].first() // 直接调用 String 方法
    val doubledAge = ages[0] * 2     // 直接进行数学运算
    println("第一个字符: $firstChar, Doubled age: $doubledAge")

    // 错误示例（会被编译器阻止）
    // val wrong = names[0] * 2 // 编译错误：String 不能相乘
}